package com.token.webservice;

import com.token.sql.AbstractTableBean;
import com.token.sql.IntegrateSql;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
/**
 * 接口日志
 * @author 代码创建
 */
public class FSysFlowApiLog extends AbstractTableBean {

    private int SysId; //租户ID
    private int ActionType; //操作类型
    private String ActionText; //操作描述
    private String StartTime; //提交时间
    private String UserName; //用户
    private String InParameter; //输入参数
    private String OutParameter; //输出参数
    private String EndTime; //结束时间
    private int Code; //返回代码

    public static String TABLE_NAME = "F_Sys_FlowApiLog";
    public static String TABLEKEY_NAME = "ApiLogId";
    public FSysFlowApiLog (IntegrateSql f){
        super(f,TABLE_NAME);
        this.setKeyName(TABLEKEY_NAME);
    }

    public FSysFlowApiLog (IntegrateSql f,ResultSet rs) throws SQLException{
        super(f,TABLE_NAME);
        this.setKeyName(TABLEKEY_NAME);
        this.initParamToRs(rs);
    }

    public FSysFlowApiLog (IntegrateSql f,String keyValue) throws SQLException{
        super(f,TABLE_NAME);
        this.setKeyName(TABLEKEY_NAME);
        setCodePrepare(selectCodeById().toString());
        prepareSql.setPstValue(1, keyValue);
        ResultSet rs = executeQuery();
        if(rs.next()){
            initParamToRs(rs);
        }else{
            initParam();
        }
        rs.close();
    }

    @Override
    protected void initParam() {
        SysId = 0; //租户ID
        ActionType = 0; //操作类型
        ActionText = ""; //操作描述
        StartTime = ""; //提交时间
        UserName = ""; //用户
        InParameter = ""; //输入参数
        OutParameter = ""; //输出参数
        EndTime = ""; //结束时间
        Code = 0; //返回代码
    }


    public void initParamToRs(ResultSet rs) throws SQLException{
        SysId = rs.getInt("SysId"); //租户ID
        ActionType = rs.getInt("ActionType"); //操作类型
        ActionText = rs.getString("ActionText"); //操作描述
        StartTime = rs.getString("StartTime"); //提交时间
        UserName = rs.getString("UserName"); //用户
        InParameter = rs.getString("InParameter"); //输入参数
        OutParameter = rs.getString("OutParameter"); //输出参数
        EndTime = rs.getString("EndTime"); //结束时间
        Code = rs.getInt("Code"); //返回代码
        this.setKeyId(rs.getString("ApiLogId"));
    }


    @Override
    protected int appendData() throws SQLException {
        int i = 1;
        prepareSql.setPstValue(i++,SysId); //租户ID
        prepareSql.setPstValue(i++,ActionType); //操作类型
        prepareSql.setPstValue(i++,ActionText); //操作描述
        prepareSql.setPstValue(i++,StartTime); //提交时间
        prepareSql.setPstValue(i++,UserName); //用户
        prepareSql.setPstValue(i++,InParameter); //输入参数
        prepareSql.setPstValue(i++,OutParameter); //输出参数
        prepareSql.setPstValue(i++,EndTime); //结束时间
        prepareSql.setPstValue(i++,Code); //返回代码
        return i;
    }


    @Override
    public Vector<String> getFields() {
        Vector<String> vec = new Vector<String>();
        vec.addElement("SysId"); //租户ID
        vec.addElement("ActionType"); //操作类型
        vec.addElement("ActionText"); //操作描述
        vec.addElement("StartTime"); //提交时间
        vec.addElement("UserName"); //用户
        vec.addElement("InParameter"); //输入参数
        vec.addElement("OutParameter"); //输出参数
        vec.addElement("EndTime"); //结束时间
        vec.addElement("Code"); //返回代码
        return vec;
    }


    /**
     * 设置租户ID
     * @param sysid 租户ID
     */
    public void setSysId(int sysid){
        SysId = sysid;
    }
    /**
     * 获取SysId
     * @return 租户ID
     */
    public int getSysId(){
        return SysId;
    }

    /**
     * 设置操作类型
     * @param actiontype 操作类型
     */
    public void setActionType(int actiontype){
        ActionType = actiontype;
    }
    /**
     * 获取ActionType
     * @return 操作类型
     */
    public int getActionType(){
        return ActionType;
    }

    /**
     * 设置操作描述
     * @param actiontext 操作描述
     */
    public void setActionText(String actiontext){
        ActionText = actiontext;
    }
    /**
     * 获取ActionText
     * @return 操作描述
     */
    public String getActionText(){
        return ActionText;
    }

    /**
     * 设置提交时间
     * @param starttime 提交时间
     */
    public void setStartTime(String starttime){
        StartTime = starttime;
    }
    /**
     * 获取StartTime
     * @return 提交时间
     */
    public String getStartTime(){
        return StartTime;
    }

    /**
     * 设置用户
     * @param username 用户
     */
    public void setUserName(String username){
        UserName = username;
    }
    /**
     * 获取UserName
     * @return 用户
     */
    public String getUserName(){
        return UserName;
    }

    /**
     * 设置输入参数
     * @param inparameter 输入参数
     */
    public void setInParameter(String inparameter){
        InParameter = inparameter;
    }
    /**
     * 获取InParameter
     * @return 输入参数
     */
    public String getInParameter(){
        return InParameter;
    }

    /**
     * 设置输出参数
     * @param outparameter 输出参数
     */
    public void setOutParameter(String outparameter){
        OutParameter = outparameter;
    }
    /**
     * 获取OutParameter
     * @return 输出参数
     */
    public String getOutParameter(){
        return OutParameter;
    }

    /**
     * 设置结束时间
     * @param endtime 结束时间
     */
    public void setEndTime(String endtime){
        EndTime = endtime;
    }
    /**
     * 获取EndTime
     * @return 结束时间
     */
    public String getEndTime(){
        return EndTime;
    }

    /**
     * 设置返回代码
     * @param code 返回代码
     */
    public void setCode(int code){
        Code = code;
    }
    /**
     * 获取Code
     * @return 返回代码
     */
    public int getCode(){
        return Code;
    }

}
